1. Field of the Invention
The present invention relates generally to a queue, and more specifically to an efficient operation of processing commands to a system or a memory.
2. Description of the Related Art
The demand for quicker and more powerful communication devices has led to many technological advances, including flash memory and the ability to store and retain data despite the loss of power. A non-volatile memory has the ability to retain the data despite loss of power and is one of the enabling technologies for the wireless and cellular revolution.
The three basic operations of a non-volatile memory are read, erase, and write commands. A read command is a query to the memory to read a data value at a specific address within the memory. The memory retrieves the data value for a received address of the query. In contrast, a write command requests the memory to store a data value in a specific address within the memory. The memory receives an address and data value, and stores the data value at the specific address. An erase command is an efficient means for deleting an entire segment or block of the non-volatile memory. Also, commands to a flash media system can include write, delete, and read files.
However, flash memory lacks symmetry for processing read, erase, and program commands. Presently, a read command or command is performed in approximately 90 nanoseconds. In contrast, a write command or command is typically performed in 7000-8000 nanoseconds. Thus, a program command is much slower and impacts the performance of a system utilizing flash memory. Also, program commands are faster than erase commands which are approximately 1 second.
A flash media is a system with various configurations of flash memory devices to create a non-volatile storage. One example is a system with a 32 bit bus and multiple 8 bit flash memory devices coupled to the 32 bit bus. Also, flash media could be hardware with additional decoding logic to manage and coordinate the various array of flash memory devices. Thus, the flash media exhibits the same flash memory device read, program, and erase characteristics. A flash media could be coupled to a file system, which has the interface and logic to manage files and directories. Thus, the interface with the file system allows for the ability to create, delete, move, read, write, and flush files and create, get, delete, read, flush, and write directories.
Commands are stored in a queue until they are processed by a microprocessor or memory. A typical queue is a first in first out (FIFO) that processes commands in the order the command is received. A FIFO minimizes design complexity but lacks flexibility and cannot process commands out of order. Simply, a FIFO processes the commands in the order they are received. Also, a priority queue allows for the ability to process commands in response to a priority. However, the current priority queues lack the ability for processing interdependent commands that are pending in the queue and lack the ability to synchronize pending data in the queue with data in the system.